<!DOCTYPE HTML>

<html lang="en">
<head>

<title>ReactiveAuthenticationManagerAdapter (spring-security-docs 5.6.3 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="ReactiveAuthenticationManagerAdapter (spring-security-docs 5.6.3 API)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":10,"i1":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">

<div class="topNav"><a id="navbar.top">

</a>
<div class="skipNav"><a href="ReactiveAuthenticationManagerAdapter.html#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">

</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="ReactiveAuthenticationManagerAdapter.html#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="ReactiveAuthenticationManagerAdapter.html#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="ReactiveAuthenticationManagerAdapter.html#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="ReactiveAuthenticationManagerAdapter.html#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">

</a></div>

</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>

<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.springframework.security.authentication</a></div>
<h2 title="Class ReactiveAuthenticationManagerAdapter" class="title">Class ReactiveAuthenticationManagerAdapter</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.springframework.security.authentication.ReactiveAuthenticationManagerAdapter</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="ReactiveAuthenticationManager.html" title="interface in org.springframework.security.authentication">ReactiveAuthenticationManager</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">ReactiveAuthenticationManagerAdapter</span>
extends java.lang.Object
implements <a href="ReactiveAuthenticationManager.html" title="interface in org.springframework.security.authentication">ReactiveAuthenticationManager</a></pre>
<div class="block">Adapts an AuthenticationManager to the reactive APIs. This is somewhat necessary
because many of the ways that credentials are stored (i.e. JDBC, LDAP, etc) do not have
reactive implementations. What's more is it is generally considered best practice to
store passwords in a hash that is intentionally slow which would block ever request
from coming in unless it was put on another thread.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>5.0</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">

</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="ReactiveAuthenticationManagerAdapter.html#%3Cinit%3E(org.springframework.security.authentication.AuthenticationManager)">ReactiveAuthenticationManagerAdapter</a></span>&#8203;(<a href="AuthenticationManager.html" title="interface in org.springframework.security.authentication">AuthenticationManager</a>&nbsp;authenticationManager)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">

</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>reactor.core.publisher.Mono&lt;<a href="../core/Authentication.html" title="interface in org.springframework.security.core">Authentication</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ReactiveAuthenticationManagerAdapter.html#authenticate(org.springframework.security.core.Authentication)">authenticate</a></span>&#8203;(<a href="../core/Authentication.html" title="interface in org.springframework.security.core">Authentication</a>&nbsp;token)</code></th>
<td class="colLast">
<div class="block">Attempts to authenticate the provided <a href="../core/Authentication.html" title="interface in org.springframework.security.core"><code>Authentication</code></a></div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ReactiveAuthenticationManagerAdapter.html#setScheduler(reactor.core.scheduler.Scheduler)">setScheduler</a></span>&#8203;(reactor.core.scheduler.Scheduler&nbsp;scheduler)</code></th>
<td class="colLast">
<div class="block">Set a scheduler that will be published on to perform the authentication logic.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">

</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">

</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(org.springframework.security.authentication.AuthenticationManager)">

</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ReactiveAuthenticationManagerAdapter</h4>
<pre>public&nbsp;ReactiveAuthenticationManagerAdapter&#8203;(<a href="AuthenticationManager.html" title="interface in org.springframework.security.authentication">AuthenticationManager</a>&nbsp;authenticationManager)</pre>
</li>
</ul>
</li>
</ul>
</section>

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">

</a>
<h3>Method Detail</h3>
<a id="authenticate(org.springframework.security.core.Authentication)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>authenticate</h4>
<pre class="methodSignature">public&nbsp;reactor.core.publisher.Mono&lt;<a href="../core/Authentication.html" title="interface in org.springframework.security.core">Authentication</a>&gt;&nbsp;authenticate&#8203;(<a href="../core/Authentication.html" title="interface in org.springframework.security.core">Authentication</a>&nbsp;token)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ReactiveAuthenticationManager.html#authenticate(org.springframework.security.core.Authentication)">ReactiveAuthenticationManager</a></code></span></div>
<div class="block">Attempts to authenticate the provided <a href="../core/Authentication.html" title="interface in org.springframework.security.core"><code>Authentication</code></a></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ReactiveAuthenticationManager.html#authenticate(org.springframework.security.core.Authentication)">authenticate</a></code>&nbsp;in interface&nbsp;<code><a href="ReactiveAuthenticationManager.html" title="interface in org.springframework.security.authentication">ReactiveAuthenticationManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>token</code> - the <a href="../core/Authentication.html" title="interface in org.springframework.security.core"><code>Authentication</code></a> to test</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>if authentication is successful an <a href="../core/Authentication.html" title="interface in org.springframework.security.core"><code>Authentication</code></a> is returned. If
authentication cannot be determined, an empty Mono is returned. If authentication
fails, a Mono error is returned.</dd>
</dl>
</li>
</ul>
<a id="setScheduler(reactor.core.scheduler.Scheduler)">

</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setScheduler</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setScheduler&#8203;(reactor.core.scheduler.Scheduler&nbsp;scheduler)</pre>
<div class="block">Set a scheduler that will be published on to perform the authentication logic.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>scheduler</code> - a scheduler to be published on</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the scheduler is <code>null</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>

<footer role="contentinfo">
<nav role="navigation">

<div class="bottomNav"><a id="navbar.bottom">

</a>
<div class="skipNav"><a href="ReactiveAuthenticationManagerAdapter.html#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">

</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="ReactiveAuthenticationManagerAdapter.html#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="ReactiveAuthenticationManagerAdapter.html#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="ReactiveAuthenticationManagerAdapter.html#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="ReactiveAuthenticationManagerAdapter.html#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">

</a></div>

</nav>
</footer>
<script>if (window.parent == window) {(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create', 'UA-2728886-23', 'auto', {'siteSpeedSampleRate': 100});ga('send', 'pageview');}</script><script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194" integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw==" data-cf-beacon='{"rayId":"7040e902bab797cf","token":"bffcb8a918ae4755926f76178bfbd26b","version":"2021.12.0","si":100}' crossorigin="anonymous"></script>
</body>
</html>
